热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

区块链|四个比喻快速理解区块链

读完本文可以收获什么?–基本的对区块链技术的理解–你可以简单快速的解释区块链技术懒得看文字的人可以直接看一些科普视频就不用读文章啦:区块链知识快速入门重要假设:读者已经理解基本的比

读完本文可以收获什么?

– 基本的对区块链技术的理解

– 你可以简单快速的解释区块链技术

懒得看文字的人可以直接看一些科普视频就不用读文章啦:区块链知识快速入门

重要假设:读者已经理解基本的比特币(bitcoin)的功能,知道钱包,转账,矿工等基础概念。本文不是技术科普,不讨论区块链的技术定义,技术实现,如果有兴趣的人可以参考 bitcoin whitepaper比特币白皮书 / Mastering Bitcoin eBook

最基本的信息:大家口中说的Blockchain被翻译为区块链,它是bitcoin比特币的底层技术和实现。在比特币运行之后人们发现区块链结构和特性的特殊之处,有运用到除了金融和支付之外其他行业的潜力,于是区块链技术被单独提炼出来进行研究和讨论。

比喻1– 分布式数据库

《区块链 | 四个比喻 快速理解区块链》 Distributed Database

区块链是可以看作是一种信息储存技术,是一个信息储存媒介。它是一种分布式的数据库。你的数据会被分布在多台计算机上(计算机就行,不一定要是服务器)。

其中特别的点就是,每台计算机储存的内容一模一样,完全相同。一台的内容丢失了其他所有的都还有一样的内容,不必担心数据的丢失。这是怎么做到的呢? 区块链的形成和维护需要多台计算机,利用共识算法(consensus algorithm)可以在限定时间内达成共识,同步他们所接受和储存的数据。理论上说,计算机越多,这个区块链就越稳定越公平(可能存在的坏人掌控整个网络的可能性降低)。

共识算法浅显的说就是,对于区块链中接收到的数据,你要进行什么要的操作和计算,怎么样决定一个数据是可疑数据还是可信数据,什么情况下放弃一个数据,怎么情况下储存一个数据。什么时候你要接受来自你附近的计算机给你的数据,什么情况你可以发布你的数据让附近的计算机接受储存等等。

所以一旦你的数据进入了blockchain,它就被广播一样的发布给所有区块链中的计算机,分布式的被储存起来,无法丢失,无法改变。

比喻2 — 账本

《区块链 | 四个比喻 快速理解区块链》 Ledger

在我们的日常生活中我们都会接触到账本,其基本作用就是保存不断新增的交易记录。最直观的例子就是我们的银行流水账单。虽然各个不同账本的具体内容可能有所改变,但是里面最基本的会记录:时间,交易进行双方(交易来自哪里,去向何方),交易进行效果(比如存钱,取钱,转账等等)。其他具体的更多的内容会根据不同的场景细微改变。

区块链的一大特性就它就是一个大账本,区块链中储存的数据都是交易记录(transactions) 。整个区块链中任何用户产生的任何交易,都不仅仅被你自己的计算机记录,而是被整个区块链的每一台计算机记录。也就是每一笔交易都会被记在账本上,而整个账本在区块链的任何一台计算机上都是可见并且一致的。换句话说,你在区块链中进行的任何交易都是透明的,公开的,加上比喻1中提到的内容,他们也是不可变的。

比喻3 — 日志(log)

《区块链 | 四个比喻 快速理解区块链》 Log

航海日志,打卡记录,借书记录卡等各种日志在我们的日常生活中非常常见。

现在流行打卡我们就用打卡来比喻吧!想象一下你有一个群打卡记录本,大家都把自己的打卡内容发出来,你收到内容之后,验证他们的可信度,把几十条可信的打卡记录写入一本日志本的一页纸上。在这里,写入本子的就是已经被认证属实的内容了。为了以防别人对这个记录进行篡改,你把这个记录找一张照片,然后贴到下一张记录的最上方。以此类推,每次写满一张纸你就给这张纸照个相,贴到下一张的上面,然后下一张纸继续记录打卡内容。 在以后的日子里,新的纪录不断增加,而旧的记录没有人能够改变,因为在新的页面总是有一张旧记录的照片,告诉你旧记录长什么样,每个人都可以验证这个内容。

区块链里面的计算机们就是这样工作的(我们叫这些验证内容和写入内容的计算机矿机miner)。它会读取用户产生的任何一笔交易,进行一个基本的验证和计算,看看这笔交易是否能被储存。如果可以,固定数量的交易将会被绑定在一起,储存在一个区块中,每个区块的会根据这些交易产生一个哈希值(Hash)。一个区块写满了计算机们会留住前一个区块的哈希值,然后把新内容写到新的区块里,等新区块满了,又进行运算产生新的哈希值(Hash)。哈希值简而言之就是一串固定长度的加密数据。

用户交易 = 打卡记录,一个区块 = 一页纸,哈希值 = 上一页纸的照片。由于哈希值的传递,也就是照片的存在,每个之前产生的区块都不可能被改变了。哈希值就是区块之间的链接。想象一下你有一张照片里面有一张照片,而它里面又有一张照片,这张照片里面还有一张照片, 无穷无尽。。。这样的情况下你还敢篡改任何一个之前的记录吗?基本完全不可能了。

比喻4 — 一致且持久的通讯网络

《区块链 | 四个比喻 快速理解区块链》

在区块链中,由于共识算法的存在,所有的计算机都会和其他计算机同步,或者一直在试图达到同步的过程中。任何一台机一个点接收到的数据都会被同步传递(或者说广播)给整个区块链的每一台计算机。从这个角度上看,区块链可以算是一个通讯网络,信息一投放进去,就会自动传播,并且被永远的锁在里面。

《区块链 | 四个比喻 快速理解区块链》 综合模型

所以综合起来,区块链技术相当于一个,持久可靠有内部通信和同步功能的分布式账本日志。

经过以上四个比喻,亲爱的读者们,对你们而言区块链技术有没有比较容易理解了呢?

第一次写和区块链技术有关的文章,欢迎大家批评和指正。

如需转载请经本人允许。谢谢。


推荐阅读
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • 前言无论是对于刚入行工作还是已经工作几年的java开发者来说,面试求职始终是你需要直面的一件事情。首先梳理自己的知识体系,针对性准备,会有事半功倍的效果。我们往往会把重点放在技术上 ... [详细]
  • 本文探讨了大型服务端开发过程中常见的几个误区,包括异步任务处理不当、日志同步模式使用、网络操作未设置超时、缓存命中率及响应时间未统计、单一缓存模式、分布式缓存加锁不当以及团队管理上的误区,旨在帮助开发者避免这些常见错误。 ... [详细]
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • 本文将详细介绍如何在ThinkPHP6框架中实现多数据库的部署,包括读写分离的策略,以及如何通过负载均衡和MySQL同步技术优化数据库性能。 ... [详细]
  • 福克斯新闻数据库配置失误导致1300万条敏感记录泄露
    由于数据库配置错误,福克斯新闻暴露了一个58GB的未受保护数据库,其中包含约1300万条网络内容管理记录。任何互联网用户都可以访问这些数据,引发了严重的安全风险。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • 远程过程调用(RPC)是一种允许客户端通过网络请求服务器执行特定功能的技术。它简化了分布式系统的交互,使开发者可以像调用本地函数一样调用远程服务,并获得返回结果。本文将深入探讨RPC的工作原理、发展历程及其在现代技术中的应用。 ... [详细]
  • 开发笔记:由数据库某字段存数组引发的json_encode/serialize思考
    开发笔记:由数据库某字段存数组引发的json_encode/serialize思考 ... [详细]
  • 深入解析Spring Cloud微服务架构与分布式系统实战
    本文详细介绍了Spring Cloud在微服务架构和分布式系统中的应用,结合实际案例和最新技术,帮助读者全面掌握微服务的实现与优化。 ... [详细]
  • 深入解析BookKeeper的设计与应用场景
    本文介绍了由Yahoo在2009年开发并于2011年开源的BookKeeper技术。BookKeeper是一种高效且可靠的日志流存储解决方案,广泛应用于需要高性能和强数据持久性的场景。 ... [详细]
  • 为何我选择了华为云GaussDB数据库
    本文分享了作者选择华为云GaussDB数据库的理由,详细介绍了GaussDB(for MySQL)的技术特性和优势,以及它在金融和互联网行业的应用场景。 ... [详细]
  • 请看|间隔时间_Postgresql 主从复制 ... [详细]
  • 区块链的兴起:恰逢其时,犹如1996年的互联网
    本文探讨了区块链技术的发展阶段,将其与1996年互联网的兴起进行对比,分析了当前区块链技术的现状及其未来潜力。 ... [详细]
author-avatar
饿狼传说少校_584_869_541
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有